脅威リストを使ったGuardDutyの検出テスト
Amazon GuardDuty は、CloudTrail、VPCフローログ、DNSログを分析し、悪意のある操作や不正な検出します。 「本当に検出されるか不安だな。。。」そんな疑問が浮かんだ方に、脅威リスト機能を使った検出テスト方法をご案内します。
脅威リストを使った検出テスト
GuardDutyには"脅威リスト"の機能があります。 ユーザー側で、既知の悪意のあるIPアドレスのリストを登録できます。 脅威リストに自分のIPを登録し、本当にイベントが発生するのか、どのように検出するのかを見ていきます。
脅威リストの登録
脅威リストは、IPアドレスまたはネットワークアドレスを1行に1つ記載します。
ファイル名は、UntrustIP.txt
などわかりやすいにすると良いでしょう。
内容は以下のような形です。
54.20.175.217 205.0.0.0/8
https://checkip.amazonaws.com/
で自分が利用中のIPアドレスを確認、記載し、ファイルをS3にアップロードします。
バケットポリシーなどは特に設定しませんでした。
GuardDutyコンソールでS3にアップしたファイルパスを指定し、有効化します。
詳しい手順は信頼できる IP リストと脅威リストの使用をご覧ください。
Pingなどを検出できる
手元のPCからEC2にpingを送信してみます。 数分すると、"結果"が作成されました。結果はGuardDutyで検知した結果のことです。 UnauthorizedAccess:EC2/MaliciousIPCaller.CustomはEC2が脅威リストのIPアドレスと通信していることを示します。
プロトコルがICMP、送信元(Actor)のIPアドレス、検知した時間などを確認できます。 Organizationにはインターネットプロバイダの情報が表示されました。 手元のPCからEC2にpingを送信したため、Locationは東京になっています。
AWSコンソールへの接続を検出できる
手元のPCからEC2コンソールに接続してみます。 15時54分にEC2コンソールに接続したところ、16時9分に結果が作成されました。 Recon:IAMUser/MaliciousIPCaller.CustomはAPIが脅威リストのIPから呼び出されたことを示します。
先ほどと同じように、送信元(Actor)のIPアドレス、検知した時間などを確認できます。
EC2コンソールに接続すると裏では、各種APIが実行されます。 DescribeAddresses、DescribeInstanceStatusなどのAPIが実行されたことがわかります。
おわりに
脅威リストを使ったGuardDutyの検出テストについて、ご紹介しました。 意図的に結果を作成する方法として、結果サンプルもあります。 結果サンプルは通知用SNSやLambdaのテストに使いやすいかと思います。 GuardDutyでテストが必要になった時は、脅威リストや結果サンプルを使ってみてください。